// public interfaces
ULONG   WINAPI Main_DDrawSurface_AddRef(LPDDRAWI_DDRAWSURFACE_INT);
ULONG   WINAPI Main_DDrawSurface_Release(LPDDRAWI_DDRAWSURFACE_INT);
HRESULT WINAPI Main_DDrawSurface_QueryInterface(LPDDRAWI_DDRAWSURFACE_INT, REFIID, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_Blt(LPDDRAWI_DDRAWSURFACE_INT, LPRECT, LPDDRAWI_DDRAWSURFACE_INT, LPRECT, DWORD, LPDDBLTFX);
HRESULT WINAPI Main_DDrawSurface_BltBatch(LPDDRAWI_DDRAWSURFACE_INT, LPDDBLTBATCH, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_BltFast(LPDDRAWI_DDRAWSURFACE_INT, DWORD, DWORD, LPDDRAWI_DDRAWSURFACE_INT, LPRECT, DWORD);
HRESULT WINAPI Main_DDrawSurface_DeleteAttachedSurface(LPDDRAWI_DDRAWSURFACE_INT, DWORD, LPDDRAWI_DDRAWSURFACE_INT);
HRESULT WINAPI Main_DDrawSurface_EnumAttachedSurfaces(LPDDRAWI_DDRAWSURFACE_INT, LPVOID, LPDDENUMSURFACESCALLBACK7);
HRESULT WINAPI Main_DDrawSurface_EnumOverlayZOrders(LPDDRAWI_DDRAWSURFACE_INT, DWORD, LPVOID,LPDDENUMSURFACESCALLBACK7);
HRESULT WINAPI Main_DDrawSurface_Flip(LPDDRAWI_DDRAWSURFACE_INT , LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_FreePrivateData(LPDDRAWI_DDRAWSURFACE_INT, REFGUID);
HRESULT WINAPI Main_DDrawSurface_GetAttachedSurface(LPDDRAWI_DDRAWSURFACE_INT, LPDDSCAPS2, LPDDRAWI_DDRAWSURFACE_INT*);
HRESULT WINAPI Main_DDrawSurface_GetBltStatus(LPDDRAWI_DDRAWSURFACE_INT, DWORD dwFlags);
HRESULT WINAPI Main_DDrawSurface_GetCaps(LPDDRAWI_DDRAWSURFACE_INT, LPDDSCAPS2 pCaps);
HRESULT WINAPI Main_DDrawSurface_GetClipper(LPDDRAWI_DDRAWSURFACE_INT, LPDIRECTDRAWCLIPPER*);
HRESULT WINAPI Main_DDrawSurface_GetColorKey(LPDDRAWI_DDRAWSURFACE_INT, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_GetDC(LPDDRAWI_DDRAWSURFACE_INT, HDC *);
HRESULT WINAPI Main_DDrawSurface_GetDDInterface(LPDDRAWI_DDRAWSURFACE_INT, LPVOID*);
HRESULT WINAPI Main_DDrawSurface_GetFlipStatus(LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_GetLOD(LPDDRAWI_DDRAWSURFACE_INT, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetOverlayPosition(LPDDRAWI_DDRAWSURFACE_INT, LPLONG, LPLONG);
HRESULT WINAPI Main_DDrawSurface_GetPalette(LPDDRAWI_DDRAWSURFACE_INT, LPDIRECTDRAWPALETTE*);
HRESULT WINAPI Main_DDrawSurface_GetPixelFormat(LPDDRAWI_DDRAWSURFACE_INT, LPDDPIXELFORMAT);
HRESULT WINAPI Main_DDrawSurface_GetPriority(LPDDRAWI_DDRAWSURFACE_INT, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetPrivateData(LPDDRAWI_DDRAWSURFACE_INT, REFGUID, LPVOID, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDDRAWI_DDRAWSURFACE_INT, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_GetUniquenessValue(LPDDRAWI_DDRAWSURFACE_INT, LPDWORD);
HRESULT WINAPI Main_DDrawSurface_IsLost(LPDDRAWI_DDRAWSURFACE_INT);
HRESULT WINAPI Main_DDrawSurface_PageLock(LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_PageUnlock(LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_ReleaseDC(LPDDRAWI_DDRAWSURFACE_INT, HDC);
HRESULT WINAPI Main_DDrawSurface_SetClipper (LPDDRAWI_DDRAWSURFACE_INT, LPDIRECTDRAWCLIPPER);
HRESULT WINAPI Main_DDrawSurface_SetColorKey (LPDDRAWI_DDRAWSURFACE_INT, DWORD, LPDDCOLORKEY);
HRESULT WINAPI Main_DDrawSurface_SetOverlayPosition (LPDDRAWI_DDRAWSURFACE_INT, LONG, LONG);
HRESULT WINAPI Main_DDrawSurface_SetPalette (LPDDRAWI_DDRAWSURFACE_INT, LPDIRECTDRAWPALETTE);
HRESULT WINAPI Main_DDrawSurface_SetPriority (LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_SetPrivateData (LPDDRAWI_DDRAWSURFACE_INT, REFGUID, LPVOID, DWORD, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayDisplay (LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlayZOrder (LPDDRAWI_DDRAWSURFACE_INT, DWORD, LPDDRAWI_DDRAWSURFACE_INT);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDDRAWI_DDRAWSURFACE_INT, DDSURFACEDESC2 *, DWORD);
HRESULT WINAPI Main_DDrawSurface_SetLOD(LPDDRAWI_DDRAWSURFACE_INT, DWORD);
HRESULT WINAPI Main_DDrawSurface_Unlock (LPDDRAWI_DDRAWSURFACE_INT, LPRECT);
HRESULT WINAPI Main_DDrawSurface_Initialize (LPDDRAWI_DDRAWSURFACE_INT, LPDIRECTDRAW, LPDDSURFACEDESC2);
HRESULT WINAPI Main_DDrawSurface_Lock (LPDDRAWI_DDRAWSURFACE_INT, LPRECT, LPDDSURFACEDESC2, DWORD, HANDLE);
HRESULT WINAPI Main_DDrawSurface_Restore(LPDDRAWI_DDRAWSURFACE_INT);
HRESULT WINAPI Main_DDrawSurface_UpdateOverlay (LPDDRAWI_DDRAWSURFACE_INT, LPRECT, LPDDRAWI_DDRAWSURFACE_INT, LPRECT,
												DWORD, LPDDOVERLAYFX);
HRESULT WINAPI Main_DDrawSurface_ChangeUniquenessValue(LPDDRAWI_DDRAWSURFACE_INT iface);
HRESULT WINAPI Main_DDrawSurface_AddAttachedSurface(LPDDRAWI_DDRAWSURFACE_INT iface, LPDDRAWI_DDRAWSURFACE_INT pAttach);
HRESULT WINAPI Main_DDrawSurface_AddOverlayDirtyRect(LPDDRAWI_DDRAWSURFACE_INT iface, LPRECT pRect);
HRESULT WINAPI Main_DDrawSurface_GetSurfaceDesc(LPDDRAWI_DDRAWSURFACE_INT iface, LPDDSURFACEDESC2 pDDSD);
HRESULT WINAPI Main_DDrawSurface_SetSurfaceDesc(LPDDRAWI_DDRAWSURFACE_INT iface, DDSURFACEDESC2 *DDSD, DWORD Flags);



// hel callbacks
DWORD CALLBACK  HelDdDestroyDriver(LPDDHAL_DESTROYDRIVERDATA lpDestroyDriver);
DWORD CALLBACK  HelDdCreateSurface(LPDDHAL_CREATESURFACEDATA lpCreateSurface);
DWORD CALLBACK  HelDdSetColorKey(LPDDHAL_DRVSETCOLORKEYDATA lpSetColorKey);
DWORD CALLBACK  HelDdSetMode(LPDDHAL_SETMODEDATA SetMode);
DWORD CALLBACK  HelDdWaitForVerticalBlank(LPDDHAL_WAITFORVERTICALBLANKDATA lpWaitForVerticalBlank);
DWORD CALLBACK  HelDdCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA lpCanCreateSurface);
DWORD CALLBACK  HelDdCreatePalette(LPDDHAL_CREATEPALETTEDATA lpCreatePalette);
DWORD CALLBACK  HelDdGetScanLine(LPDDHAL_GETSCANLINEDATA lpGetScanLine);
DWORD CALLBACK  HelDdSetExclusiveMode(LPDDHAL_SETEXCLUSIVEMODEDATA lpSetExclusiveMode);
DWORD CALLBACK  HelDdFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA lpFlipToGDISurface);




